package com.gonsin.i18n.app;

import android.app.Application;

import com.gonsin.i18n.lib.T;
import com.gonsin.i18n.lib.common.TextObserver;
import com.gonsin.i18n.lib.common.TextResult;
import com.gonsin.i18n.lib.config.TConfig;

public class AppContext extends Application implements TextObserver {

    @Override
    public void onCreate() {
        super.onCreate();

        // 此秘钥采用对称加密，应该与服务器端协商，加密和解密端的秘钥应该要相同的秘钥
        String key = "nusTIdVQFhQs2lrz";

        // 在应用中尽早初始化字符串资源的服务器和端口，并且拉取服务器上的字符串资源。
        TConfig config = new TConfig();
        config.setProject("yourProjectName");
        config.setIp("192.168.2.199");
        config.setPort(8080);
        config.setEncoder("utf8");
        config.setKey(key);

        /**
         * 调试模式
         * debug = true的情况下，会启用调试模式，调试模式会每1分钟就会向服务器请求字符串，
         * 用于前端实时去修改当前显示的字符串
         *
         * 该效果需要配合  TextObserver才会有小，每次字符串有修改都会触发 TextObserver方法
         */
        //config.setDebug(true);
        T.config(config);

        // 后台字符串如果有修改，会通知到前端
        T.addObserver(this);

        T.setLang("en");
        // 调用load会异步加载服务器端的字符串资源。加载完会自动刷新当前页面。
        //T.load();

        // 调用loadSync会同步加载，该方法应该放在线程中执行。
        new Thread(() -> {
            TextResult result = T.loadSync();
        }).start();

    }

    @Override
    public void applyText() {
        // TODO 自行实现前端页面刷新方法
    }
}
